Interactive controls that are collapsible and expandable and sequences for chart visualization optimizations

ABSTRACT

Various methods, systems and storage devices are provided for sequencing chart visualization optimizations that include reducing a chart visualization to a single displayed value. Various methods, systems and storage devices are also provided for creating and utilizing an interactive control that is dynamically created in response to one or more chart elements being removed from a chart visualization during optimization of the chart visualization and that is operable, when selected and expanded, for accessing the removed one or more chart elements. Later, the one or more chart elements are removed from the chart visualization again by collapsing the interactive control.

There are many types of chart visualizations that can be used to represent data, including graphs, plots, maps, tables and other types of charts. It is common for these chart visualizations to include labels, legends, titles, gridlines, and other textual and graphical elements to help identify, describe, quantify and/or otherwise reflect the relative relationships between the underlying data.

To improve the readability and visual appearance of a chart visualization, the chart elements are appropriately sized and arranged for display on the intended target displays. For instance, a chart that is rendered on a desktop monitor will often be configured with larger fonts and, sometimes, with more chart elements than when the same chart is configured for presentation on smaller handheld devices.

Some software applications, including Microsoft's Excel®, are specifically configured to adjust the display attributes of a chart in response to the resizing of the chart. For instance, when a chart is initially created in Excel®, the default size of the chart can be 600 pixels wide by 360 pixels tall (e.g., 5″×3″). The elements of the chart (e.g., legend, title, etc.) are laid out within the chart based on this default size for preferred readability and aesthetics. When the chart is subsequently reduced in size, due to user input and/or in response to displaying the chart on a different device, certain chart elements can be removed from the chart and/or scaled within the chart.

When chart elements are removed from the chart, including labels, values, legends and/or other elements, it can become difficult to use or interpret the underlying data of the chart. To access the content that was removed, the user may have to resize the chart and/or access the data through menus or from the underlying data sources. However, this can be cumbersome and inconvenient.

Accordingly, there is an ongoing need for improved systems and methods for managing chart visualizations, particularly during optimizations of the chart visualizations.

The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.

BRIEF SUMMARY

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

As described herein, various methods, systems and storage devices are provided for performing chart visualization optimizations in response to detecting triggering events.

By way of example, a computing system performs chart visualization optimizations for a chart visualization that includes a plurality of modifiable chart elements. The computing system accesses the chart visualization and detects input that is operable to initiate at least one optimization of the chart visualization that affects visualization of the chart elements. Thereafter, the computing system progressively performs the at least one optimization in a predetermined sequence that includes at least removing one or more of the different chart elements and displaying the chart visualization as an optimized chart visualization consisting of a single displayed value that replaces the one or more chart elements that were removed from the chart visualization.

Various methods, systems and storage devices are also provided for creating and utilizing interactive controls that are dynamically created in response to one or more chart elements being removed from a chart visualization during optimization of the chart visualization and that are selectably operable for accessing the removed one or more chart elements. These interactive controls are also dynamically collapsible and expandable in response to detected user input.

In at least some embodiments, a computing system implements a method for creating and/or utilizing interactive controls for chart visualizations that are accessed by the computing system. The chart visualizations includes a plurality of different chart elements that have display attributes that are modifiable during optimizations of the chart visualizations. The computing system identifies one or more chart elements to be removed from the chart visualizations responsive to one or more optimizations associated with triggering events affecting visibility of the chart visualizations. Thereafter, the computing system removes the one or more chart elements from the chart visualizations and dynamically creates one or more interactive controls for providing access to the removed chart elements and/or other data items. These interactive controls are collapsible and expandable in response to user input. In some embodiments, the interactive control includes a selectable link and the computing system, upon detecting input directed at the interactive control, responsively displays the removed chart elements and/or other data items.

Additional features and advantages will be set forth in the description, which follows, and in part will be obvious from the description, or may be learned by the practice of the teachings herein. Features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. Features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description of the subject matter briefly described above will be rendered by reference to specific embodiments which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not therefore to be considered limiting in scope, embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:

FIG. 1 illustrates an embodiment of a computing system which is usable to implement aspects of the disclosed embodiments;

FIG. 2 illustrates a set of chart visualizations having different sizes and configurations;

FIG. 3 illustrates a flowchart of at least one method for performing chart visualization optimizations;

FIGS. 4-12 illustrate examples of charts having different sizes and configurations that correspond to different aspects of the disclosed embodiments for performing chart visualization optimizations;

FIG. 13 illustrates a flowchart of at least one method for creating, providing and/or otherwise utilizing a dynamic and interactive control for accessing chart elements, including chart elements that are removed during visualization optimizations; and

FIGS. 14-22 illustrate examples of chart visualizations having different chart elements corresponding to the interactive control referenced in the flowchart of FIG. 13.

DETAILED DESCRIPTION

Aspects of the disclosed embodiments generally relate to embodiments for optimizing chart visualizations and, even more particularly, to methods, systems and storage devices that perform specific sequences and actions while optimizing chart visualizations and/or that utilize a dynamic and interactive controls for accessing chart elements.

Some of the disclosed embodiments include a computing system executing stored computer-executable instructions with one or more processors of the computing system in order to perform a method of creating and/or utilizing an interactive control that is dynamically provided in response to one or more chart elements being removed from a chart visualization during optimization of the chart visualization and that is operable for responsively and dynamically accessing the removed one or more chart elements in response to user input directed at the interactive control.

Some of the disclosed embodiments also include a computing system executing stored computer-executable instructions with one or more processors of the computing system in order to perform a method for performing chart visualization optimizations in response to detecting a triggering event according to a particular sequence and/or by performing at least a particular optimization that includes removing one or more of the different chart elements and displaying the chart visualization as an optimized chart visualization consisting of only a single displayed value that replaces the one or more chart elements that were removed from the chart visualization.

The disclosed embodiments are usable to improve the overall user experience with charting applications, such as during the optimization of chart visualizations that remove chart elements in an intuitive manner, and for accessing removed chart elements and corresponding data by utilizing interactive controls and/or by being presented summary values that represent one or more removed data elements.

In at least this regard, there are various technical effects and benefits that can be achieved by implementing aspects of the disclosed embodiments. By way of example, the disclosed embodiments can be used to provide enhanced user controls for accessing chart elements to aid in the readability and/or functionality of the optimized charts.

The technical effects related to the disclosed embodiments also include improved user convenience and efficiency gains through a reduction in a quantity of steps that are required to access the chart elements, such as, for example, through cumbersome menus. The technical effects also include efficiency gains for computing systems through a reduction in processing overhead associated with receiving and processing multiple manual user inputs that would otherwise be required for accessing removed chart elements and/or to interpret the underlying data of the removed chart elements. The technical effects related to the present disclosure further include the presentation of consolidated data that intelligently represent omitted chart elements in a new and useful way, so that a chart visualization is capable of summarizing at least some data as a single value when all other chart elements have been removed from the chart visualization.

Various methods, computing systems and storage devices will now be described with reference to the disclosed embodiments for performing chart visualization optimizations and for utilizing interactive controls.

Computing Environment

In this description and in the claims, the term “computing system” is defined broadly as including any device or system (or combination thereof) that includes at least one physical and tangible processor, and a physical and tangible memory capable of having thereon computer-executable instructions that may be executed by the processor.

As illustrated in FIG. 1, in its most basic configuration, the computing system 100 includes at least one processing unit 102 and memory 104. The memory 104 may be physical system memory, which may be volatile, non-volatile, or some combination of the two. The term “memory” may also be used herein to refer to non-volatile mass storage such as physical storage media. If the computing system is distributed, the processing, memory and/or storage capability may be distributed as well.

As used herein, the term “executable module” or “executable component” can refer to software objects, routings, or methods that may be executed on the computing system. The different components, modules, engines, and services described herein may be implemented as objects or processes that execute on the computing system (e.g., as separate threads).

In the description that follows, embodiments are described with reference to acts that are performed by one or more computing systems. If such acts are implemented in software, one or more processors of the associated computing system that performs the act direct the operation of the computing system in response to having executed computer-executable instructions. For example, such computer-executable instructions may be embodied on one or more computer-readable media that form a computer program product. An example of such an operation involves the manipulation of data. The computer-executable instructions (and the manipulated data) may be stored in the memory 104 of the computing system 100.

The computer-executable instructions may be used to implement and/or instantiate all of the functionality disclosed herein, including, but not limited to the functionality that is disclosed in reference to the flow diagram of FIG. 3.

Computing system 100 may also contain communication channels 108 that allow the computing system 100 to communicate with other message processors over, for example, network 110.

Embodiments described herein may comprise or utilize special-purpose or general-purpose computer system components that include computer hardware, such as, for example, one or more processors and system memory. The system memory may be included within the overall memory 104. The system memory may also be referred to as “main memory,” and includes memory locations that are addressable by the at least one processing unit 102 over a memory bus in which case the address location is asserted on the memory bus itself. System memory has been traditionally volatile, but the principles described herein also apply in circumstances in which the system memory is partially, or even fully, non-volatile.

Embodiments within the scope of this disclosure also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general-purpose or special-purpose computer system. Computer-readable media that store computer-executable instructions and/or data structures are computer storage media. Computer-readable media that carry computer-executable instructions and/or data structures are transmission media. Thus, by way of example, and not limitation, embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: computer storage media and transmission media.

Computer storage media are physical hardware storage devices that store computer-executable instructions and/or data structures. Physical hardware storage devices include computer hardware, such as RAM, ROM, EEPROM, solid state drives (“SSDs”), flash memory, phase-change memory (“PCM”), optical disk storage, magnetic disk storage or other magnetic storage devices, or any other hardware storage device(s) which can be used to store program code in the form of computer-executable instructions or data structures, which can be accessed and executed by a general-purpose or special-purpose computer system to implement the disclosed functionality of the invention.

Transmission media can include a network and/or data links which can be used to carry program code in the form of computer-executable instructions or data structures, and which can be accessed by a general-purpose or special-purpose computer system. A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer system, the computer system may view the connection as transmission media. Combinations of the above should also be included within the scope of computer-readable media.

Program code in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile computer storage media at a computer system. Thus, it should be understood that computer storage media can be included in computer system components that also (or even primarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions and data which, when executed at one or more processors, cause a general-purpose computer system, special-purpose computer system, or special-purpose processing device to perform a certain function or group of functions. Computer-executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code.

Those skilled in the art will appreciate that the principles described herein may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, pagers, routers, switches, and the like.

The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. As such, in a distributed system environment, a computer system may include a plurality of constituent computer systems. In a distributed system environment, program modules may be located in both local and remote memory storage devices.

Those skilled in the art will also appreciate that the invention may be practiced in a cloud computing environment. Cloud computing environments may be distributed, although this is not required. When distributed, cloud computing environments may be distributed internationally within an organization and/or have components possessed across multiple organizations. In this description and the following claims, “cloud computing” is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services). The definition of “cloud computing” is not limited to any of the other numerous advantages that can be obtained from such a model when properly deployed.

Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include: Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.

When the referenced acts of the disclosed methods are implemented in software, the one or more processors 102 of the computing system 100 perform the acts and direct the operation of the computing system 100 in response to having executed the stored computer-executable instructions defined by the software. Various input and output devices, not illustrated, can be used by the computing system to receive user input and to display output in accordance with the computer-executable instructions.

Various methods for implementing the disclosed embodiments, such as with computing system 100, will now be described, along with a description of chart visualizations and corresponding chart visualization optimizations.

Resizing of Chart Visualizations

FIG. 2 illustrates a plurality of chart visualizations (200, 210, 220 and 230) that correspond to underlying data. In the present example, the underlying data comprises sales data and the chart visualizations reflect annual sales by regions.

The first chart visualization 200 is rendered at a default size. In this default size, various chart elements are presented, including a title 201, a legend 202, data labels 203, axis labels 204, in-chart labels 205, graphical data objects 205, and gridlines 207.

Chart visualization 210 is based on the same underlying data as chart visualization 200, but fewer chart elements are presented in the second visualization. Furthermore, the font size and position of some of the chart elements have also been changed. This is done, according to some implementations, to improve readability of the chart visualization 210 at the reduced size which, in this case, is at a 25% reduction of the original default size, such that it is now rendered at 75% of the original size. Similarly, a reduction of the original chart visualization 200 by 50% is shown by chart visualization 220, which includes even fewer chart elements. Finally, chart visualization 230 reflects a 75% size reduction of the original size, such that it is now rendered at 25% of the original size, and which includes yet even fewer chart elements. In some instances, the chart elements are replaced by new chart elements to facilitate the readability of chart (e.g., adding labels $15,000.00 to chart visualization 210 and by adding label $20,000.00 to chart visualizations 220 and 230).

Despite the foregoing modifications, whether performed manually or automatically, it may still be difficult, sometimes, to read all of the text that is presented within the labels, depending on the size of the text, the amount of overlap and the variance in contrast between the overlapping elements and the other display attributes of the chart elements (as shown). The aesthetic appeal of the chart may also be affected in a negative way, depending on when the foregoing changes are made or not made, as well as how they are made. Furthermore, at some point, the chart cannot continue to be reduced in size without removing or resizing all of the chart elements in such a way that the underlying data is unreadable and unusable. In some instances, the user may also wish to access the removed chart elements. But, existing systems do not provide an intuitive way to understand and/or access the removed chart elements including particular labels, values, images, legends or other elements that the user deems critical to the interpretation, usability, appeal or other functionality of the chart.

Chart Visualization Optimizations and Sequencing

To help address at least some of the foregoing problems, embodiments of this disclosure may be utilized to improve the manner in which chart optimizations are performed, by performing the chart optimizations in a particular sequence and/or by including at least one optimization that includes summarizing and presenting summary data and/or replacement data for removed chart elements directly within the chart visualizations as a single summarizing and/or replacement value.

In some embodiments, a modification to a chart (sometimes referred to herein as a chart optimization) may occur automatically and/or manually in response to detecting a triggering event (e.g., in response to a resizing of the chart, an overlap of chart elements, an obstruction to one or more chart elements, and so forth). The resulting chart optimizations or chart modifications include any combination of repositioning chart elements, temporarily removing or permanently removing chart elements, replacing chart elements and/or changing display attributes of the chart elements (e.g., size, font, transparency, contrast, coloring, etc.).

The flowchart 300 of FIG. 3, for instance, illustrates a method that starts with a computing system accessing a chart visualization that includes a plurality of different chart elements (act 310). Thereafter, input is detected for causing a resizing or other modification to the chart visualization (act 320). Finally, a sequence of visualization optimizations is performed during the resizing or other chart modification/optimization (act 330). These referenced acts will be described in more detail below. But first, a more detailed description of the chart visualization and chart elements will be provided.

The accessed chart visualization comprises any chart type, including, but not limited to, one or more bar charts, bubble charts, pie charts, line charts, column charts, area charts, scatter plots, combo charts, doughnut charts, surface charts, radar charts, histogram charts, pareto charts, waterfall charts, box & whisker charts, treemap charts, sunburst charts, funnel charts, or other charts, plots or graphs, maps, tables or other chart visualizations that reflect relationships between data aggregations or any other types of underlying data.

The chart elements referred to by this disclosure include one or more textual elements and/or graphical elements. The textual elements include any combination of number, character and/or symbol. Graphical elements include any combination of one or more axis lines, grid lines, tick marks, lines, bars, wedges, circles, squares, dots, or any other shapes, icons, pictures, animations or any other graphical elements.

Each of the different chart elements have one or more corresponding display attributes, including one or more coloring, contrast, brightness, size, font type or other font attribute, thickness, shading, orientation, tapering, transparency, position or other display attribute. These display attributes include any combination of default attributes or user defined attributes that are stored in and accessible through data structures stored in the system memory. The display attributes also include any combination of one or more value, label, graphical object and/or other rendered component associated with the corresponding chart element(s).

The display attributes for particular chart elements are, according to some embodiments, modifiable during optimizations of the chart visualizations. In some embodiments, the chart visualization also includes general chart display attributes similar to the display attributes of individual chart elements, including attributes associated with scaling, size, color, font, visibility, etc., all of which are also modifiable.

As indicated above, the computing system will (at some point) detect input that is operable to cause a modification to the chart visualization. This modification will affect visualization of one or more of the chart elements (act 306) through an optimization of the chart visualization, this optimization includes modifying one or more of the display attributes for the chart elements. The triggering input that is detected by the computing system includes any input that is sufficient to trigger an optimization or other modification to the chart visualization.

Triggering Events for Modifying Chart Visualizations

Some specific examples of inputs comprising triggering events for optimizations that affect the chart visualization, such as a resizing of the chart visualization (act 320) and/or that correspond to a reduction in visibility to one or more chart elements, will now be provided.

In one instance, a triggering event includes determining that the chart visualization is to be rendered on a display device having particular size constraints that require resizing of the chart visualization from an initial size. This determination/instruction can be, for instance, an input that causes resizing (e.g., zooming in or out) within a chart viewport and/or the resizing of a viewport relative to an interface/browser layout viewport in which the chart viewport is presented.

In some instances, the triggering events include detecting an overlap that is about to occur, prior to actually rendering the visualization by a graphics card of the computing system and/or the presentation of the chart visualization on a system display screen.

In some embodiments, the triggering events include detecting an actual overlap that has occurred for a chart visualization that is rendered to a user on a display device with other display objects, by analyzing a resized chart visualization simultaneously to or after it is being processed for display, with an analysis of other potentially displayed objects.

In some embodiments, the triggering events include detecting that the overlap is occurring within the chart by one or more predetermined chart elements. These predetermined chart elements can include any combination of one or more textual or graphical elements (e.g., one or more legend, title, label, value, a largest element, a smallest element, multiple textual chart elements, multiple graphical chart elements, chart elements that are within a predetermined visibility threshold based on contrasts or transparencies, elements having particular coloring, elements having particular shading, elements having particular sizes, fonts, shapes, or other display attributes).

In some instances, the triggering events include detecting that the overlap exceeds a predetermined threshold amount, such as a predetermined percentage of one of the elements (e.g., X % of total area of the element(s)) is overlapped and/or a predetermined magnitude of the element(s) is overlapped (e.g., a predetermined number of pixels, characters, quantity of elements, or other magnitude of detectable overlap).

In some instances, the triggering events also include the changing of a display attribute without actually increasing or otherwise changing an amount of overlap that already existed. For instance, two elements may already be overlapping and their transparencies, relative contrasts, coloring, or other display attributes may be within a predetermined tolerance of visibility (as defined by one or more stored tolerance values), such that a triggering event does not initially exist. However, a change to one of the display attributes of one or more of the chart elements may be sufficient to cause a triggering event when the change results in the transparencies, relative contrasts, coloring, or other display attributes to fall outside of a predetermined tolerance of visibility for overlapping elements.

In some embodiments, the trigger event includes a combination of two or more of the foregoing triggering events, for two, three or any other quantity of overlapping chart elements.

The process for detecting the triggering events, includes, according to some embodiments, referencing tables and other data structures that specify the relative or fixed placements of the different chart elements and/or their corresponding display attributes. In some embodiments, the processes for detecting the triggering events includes, additionally, or alternatively, intercepting or otherwise accessing data sent to or received from the graphics card on the computing system or application interface(s) (e.g., spreadsheet table) processing the chart visualizations.

In some embodiments, the settings for controlling what qualifies as adequate triggering events are user defined, through menus that enable the receipt of user input that is operable to define the user settings.

In some embodiments, the settings for controlling what qualifies as adequate triggering events are based on chart type, element type, display type and/or chart visualization size, such that the settings differ for different types of charts, chart elements and/or display types.

Sequencing of Visualization Optimizations

Some specific examples of different optimizations that are performed responsive to the disclosed triggering events and the sequences for performing those optimizations will now be described with reference to acts 331, 332, 333, 334, 335, 336 and 337 of FIG. 3 and the chart visualizations of FIGS. 4-12.

The illustrated optimizations of the flow diagram 300 of FIG. 3 include changing at least one chart element from a non-compact format into a compact format (act 331), changing a font of at least one font element (e.g., a text or character) element (act 332), removing one or more non-label chart element from the chart visualization (act 333), removing one or more label chart element from the chart visualization (act 334), modifying a positional placement of the legend (act 335), removing the legend from the chart visualization (act 336) and/or reducing the chart visualization to a display of a single value (act 337).

It will be appreciated that the disclosed optimizations performed in response to the triggering event(s) include any combination of one or more of the recited acts (331, 332, 333, 334, 335, 336 and 337). Furthermore, in some instances, the optimizations are performed only in an ordering that corresponds to the ordering shown in FIG. 3, including any combination of two or more of the recited acts (331, 332, 333, 334, 335, 336 and 337). For instance, the act of removing the legend (act 336) will only occur, in some instances, after first moving the legend to a different location within the chart visualization (act 335). Likewise, the act of removing a label chart element (act 334) will only occur after first removing at least one non-label chart element (act 333), and changing a font of an element (act 332) will only occur after first changing that element from a non-compact form to a compact form (act 331). This specified ordering will, in some instances, create efficiencies during processing of the chart optimizations (e.g., having to change the font of fewer characters will require less computer processing) and also to improve user experiences (e.g., by reducing chart elements in an intuitive manner) and to facilitate interpretation and usability of the chart visualizations during and subsequent to the optimizations (e.g., by preserving relevant information as long as possible, including a key summarizing value for the chart visualization when all other elements are removed).

In other embodiments, only some of the illustrated optimizations are performed in the sequencing that is presently illustrated, while some acts are performed in different sequencing. For instance, as shown in one of the examples below, a legend can be repositioned (in one embodiment) prior to removing one or more chart elements. However, even in this embodiment, at least some of the sequenced optimizations will still be performed in the sequencing order that is illustrated by the flow diagram 300 of FIG. 3.

Specific examples of performing the recited optimizations (e.g., acts 331, 332, 333, 334, 335, 336 and 337) will now be provided in reference to the chart visualizations of FIGS. 4-12.

As shown in FIG. 4, a chart visualization 400 is presented with various chart elements, including a title 410, a legend 420, axis category labels 430 (i.e., ‘Sales’ and ‘Sales Regions’), tick mark labels 440 and 460 and graphical elements 470 (only some of which are referenced) and that visually reflect how the underlying data is related to both the different labeled categories (e.g., sales regions by day) and scaled sales values. The chart visualization 400 also includes gridlines 480 that help reflect relative magnitudes of the different underlying data intersections that are presently illustrated by the graphical elements 470.

Chart visualization 400 is subsequently resized, responsive to user input or an application process that includes one or more of the triggering events described above. For instance, in response to the triggered chart resizing (e.g., before, during or after the actual rendering of the resized visualization), the computing system detects an overlap condition or another triggering event for triggering the optimizing of the chart visualization in such a way as to affect rendering of one or more of the chart elements.

The computing system then responds to the detected input (act 320) by performing one or more sequenced optimizations (act 330), such as by performing the act of changing an element from a non-compact format into a compact format (act 331). This optimization is reflected by resized chart visualization 500 of FIG. 5. In particular, some of the elements have been abbreviated, such as the title 510 (e.g., using the term ‘USA’ instead of ‘United States of America’) and the numerical presentation of the tick mark labels 540 and 560. The optimizations that resulted in chart visualization 500 also included moving the legend 520.

The modifications performed during these optimization sequences are selectively limited and based (according to some embodiments) on which elements have been tagged and which display attributes for the tagged elements are identified (implicitly or explicitly) to be preserved during the modifications, based on the stored default display attribute settings, for example. Accordingly, while the flowchart 300 of FIG. 3 does not include specific acts for tagging chart elements or referencing stored display attribute settings, the embodiments of this disclosure include embodiments for receiving tagging input directed to chart elements and for storing/identifying display attributes to be preserved for those tagged chart elements.

By way of further example, some disclosed embodiments include an act of detecting tagging input that implicitly or explicitly identifies at least one display attribute for a tagged chart element to be preserved during optimization of the chart visualization, such as a value, label, graphical object and/or any of the other component of a chart element to be preserved, as well as the other display attributes to be preserved for the tagged chart element (e.g., font size, coloring, transparency, contrast, position, existence, full version vs. abbreviated version, etc.).

In some instances, a set of display attributes are maintained as a default set of display attributes to be preserved for a tagged chart element whenever that chart element is tagged. In some instances, the stored set of default display attributes includes a value or label for a chart element to be preserved. Alternatively, or additionally, the default set of display attributes includes a font, a size, an attribute, a visibility, an abbreviation, a replacement value and/or a position of an element or any other display attribute or combination of display attributes for one or more corresponding chart element.

In some instances, the default set of display attributes is maintained in a table or other data structure that is stored by and/or accessible to and readable by the computing system. The computing system references this data structure during chart optimizations to identify which chart elements and/or display attributes to modify or not, based on whether the corresponding chart elements have been tagged.

When a chart element is a label or value, the different default sets of display attributes may include specific abbreviations that are determined to be suitable alternatives that preserve an intended meaning of the original chart elements. For instance, the label “United States” for a tagged element may be preserved by using the abbreviation “U.S.” and “US,” when specified as such by the stored default set of display attributes.

In some instances, the display attributes are user modifiable, based on user input provided to one or more input fields of a table or other stored data structure that are operable to define and/or modify the default set of stored display attributes. In some instances, these input fields are displayed as and/or are modifiable through menus or other interface objects that are rendered in response to a user selecting a chart element from the chart and/or through directory menus accessible through an application interface control ribbon (not presently shown).

According to one embodiment, resizing of the chart visualization 500 triggers yet another optimization (e.g., by causing an overlap of the legend 520 with the gridlines 580, by causing labels to overlap with other elements, or by another triggering event) that results in the system automatically removing one or more of the non-label chart elements (e.g., gridlines 580 have been removed) (act 333).

Optimizations for creating new chart visualization 600 also includes, according to some embodiments, the changing of a font corresponding to the labels and other chart elements that were previously reformatted into a compact formation (e.g., title 610 and tick mark labels 640 and 660). In the present embodiment, the changes to the font (e.g., size, color, type, etc.) is not presently reflected. However, any change to the font is adequate to perform act 332, which is performed subsequent to act 331. The change in the font, to a different type and/or size is beneficial for helping with the readability and/or visibility of the corresponding chart elements.

A further modification and optimization of the chart is reflected in FIG. 7. For instance, chart visualization 700 omits at least some of the label chart elements (e.g., at least some of the tick mark labels 640 and 660 of visualization 600) (act 334), subsequent to removing at least one of the non-label elements (e.g., the gridlines 580 of FIG. 5) (act 333).

In a subsequent optimization, triggered by chart visualization 700 being reduced in shape and size, the system generates visualization 800 of FIG. 8. In this optimized visualization 800, label elements are removed from the chart visualization 800 (act 334), including the title 710 and the axis category labels 730 of visualization 700. The legend 820 and the tick mark labels 840 and 860 remain, however, along with the chart elements 870 because they were either tagged and/or because the system determined they had a higher priority value than the removed elements based at least in part on the stored default display attributes.

When chart visualization 800 is further reduced in shape and size, another triggering event is detected, which results in another optimization and the creation of visualization 900 of FIG. 9. In this optimized visualization 900, the legend 920 is repositioned and reconfigured (act 335). In a previous optimization (see FIGS. 4-5) the legend was also moved. Accordingly, this indicates how act 335 and the other recited acts can be performed multiple times in multiple different optimizations.

In the present example, the legend 920 is preserved, along with chart elements 970 and labels 940 and 960, because one or more of these elements was identified as important and/or was tagged and the system preserved the default set of display attributes identified for those tagged elements. For instance, the system reconfigured and moved the legend 920 rather than completely removing the legend 920, because the identified display attributes to be preserved for the legend 920 referenced size and presence. But, the configuration and location attributes were not identified by the stored settings as also needing to be preserved.

In some instances, the chart elements and their display attributes will only be preserved, until certain conditions are met (e.g., until the chart is reduced to a certain size). For instance, a further reduction of chart visualization 900 will cause an optimization that results in the optimized visualization 1000 of FIG. 10. In this optimization, the legend 920 has been removed (act 336). Some elements remain, however, inasmuch as they may have been previously tagged for preservation, or based on these elements being high priority elements, such as labels 1040 and 1060 and chart elements 1070.

The optimizations applied to the chart visualizations will then continue, based on one or more triggering events associated with resizing the chart visualizations, by removing additional chart elements, resulting in visualization 1100 of FIG. 11.

Continued or selective resizing of the chart visualization will also trigger at least one optimization for reducing the chart visualization and all of the corresponding chart elements to a single displayed value (act 337). This is shown, for example, by the visualization 1200 of FIG. 12, which consists of only a single element 1170 comprising a particular value. This particular value corresponds to one or more chart elements that were previously tagged and/or to a value specified by the default display attributes associated with the chart elements or their underlying data (e.g., a max value, an average value, a cumulative value, a differential value, or another value associated with underlying data of the chart visualization).

In some embodiments, the remaining value is specified by a user during a tagging process. In some embodiments, the computing system automatically calculates or identifies this value based on a default setting in response to the chart being reduced to a predetermined size (e.g., by being reduced to a predetermined number of pixels, by being reduced by a predetermined percentage, until a predetermined number of chart elements have been determined to be unreadable and/or removed, in response to the chart being reduced by a predetermined magnitude, etc.). The remaining value is calculated subsequent to detecting the triggering event (e.g., reducing the chart size) and/or prior to the triggering event occurring. This value is stored in the default display attribute data structure or another structure that is accessed by the computing system during the optimization(s).

In some embodiments, the optimization(s) performed by the computing system will result in the creation of an optimized chart visualization that omits all chart elements comprising labels or values other than the single displayed value. This value includes, in some instances, a previously display chart value that was previously rendered within the chart visualization. In some embodiments, the value is a new value that was not previously rendered in the chart visualization, but which nonetheless corresponds to the underlying data of the chart visualization.

In some embodiments, the optimized chart visualization omits all other values from the chart visualization except for the lone remaining value which is displayed with one or more graphical and non-textual chart elements that represent or otherwise correspond to the value.

Dynamic and Interactive Controls

As indicated above, some embodiments of this disclosure correspond to the creation and use of interactive controls that are dynamically presented/created in response to one or more chart elements being removed from a chart visualization during optimization of the chart visualization and that are operable for accessing the removed one or more chart elements.

The flowchart 1300 of FIG. 13 illustrates various acts associated with the disclosed methods for creating and using interactive controls. These acts include: accessing a chart visualization that includes a plurality of different chart elements (act 1310), wherein each of the different chart elements have display attributes that are modifiable during optimization of the chart visualization; detecting input affecting visibility of the chart visualization (act 1320); identifying one or more chart elements to be removed from the chart visualization responsive to an optimization that is triggered by a triggering event that affects visibility of the chart visualization (act 1330); removing the one or more chart elements from the chart visualization (act 1340); dynamically creating an interactive control that is operable, in response to detected user input directed to the interactive control, to access the removed one or more chart elements (act 1350); receiving and/or detecting the input directed at the interactive control (act 1360); and/or displaying the removed chart elements in response to the input directed at the interactive control (act 1370).

In some embodiments, the interactive control comprises a selectable link which is operable, when selected, to cause a display of the one or more chart elements that were previously removed from the chart. This selectable link is displayed, in some instances, directly within the chart visualization upon removing the one or more of the identified chart elements from the chart, as described in more detail below with regard to FIGS. 16, 19 and 20. In some alternative or additional embodiments, the computing system turns one or more of the remaining chart elements into the selectable link, as described in more detail below with regard to FIG. 21.

Attention is now directed to FIGS. 14-17, which illustrate chart visualizations 1400, 1500, 1600 and 1700 corresponding to sales data for various products reflected in legends 1420, 1520 and 1720.

In these examples, a modification is made to the chart visualization 1400 that causes at least one of the chart elements to be obstructed, as illustrated by the obstruction to legend 1520 in chart visualization 1500, as well as some of the graphic elements in the visualization 1500. This causes the system to detect a triggering event for optimizing the visualization 1500 by removing the legend from the visualization (as reflected in visualization 1600). However, a user may want to view the removed legend without having to navigate cumbersome menus. The present disclosure provides a solution for this problem. In one embodiment, for example, the system generates, creates or otherwise obtains and displays an interactive control that is selectable to cause the interactive control to be expanded and to thereby provide access the removed chart elements that are presented in the expanded interactive control (i.e., the legend in this example). Later, the interactive control is collapsed, in response to user input, thereby hiding or otherwise removing the chart elements again.

In the present example, the interactive control includes a selectable link that is rendered as a displayed object 1690. This link is operable, when selected, to expand the interactive control and/or to render a separate interactive control interface that renders a display of the legend, as shown by the rendering of legend 1720 in FIG. 17. Alternatively, or additionally, one or more of the graphical elements (e.g., the displayed bars or other chart elements) are converted into a selectable link that is operable, when selected, to render one or more of the removed chart elements within the expanded/new interactive control interface. The selection of the link for expanding the interactive control includes any input that is capable of selecting the link, such as one or more mouse click, one or more touch on a touch sensitive display, one or more key command, one or more mouse prompt hovering over the selectable link and/or other input directed to the selectable link. Similar input can also be received to collapse the interactive control interface, such one or more mouse click, one or more touch on a touch sensitive display, one or more key command, removing a mouse prompt from hovering over the selectable link and/or other input that is directed away from the interactive control.

It is noted that the display of the legend or other chart element, dynamically in response to the selection of the interactive control link, will sometimes overlap with other displayed chart elements (see FIG. 17). This behavior will not, according to some embodiments, trigger an optimization of the chart visualization. In other embodiments, however, this will trigger an optimization that will cause a removal, repositioning or other modification to displayed chart elements. For instance, the embodiment of FIG. 22 reflects a removal of a legend 2120 (FIG. 21) that was obstructed during the presentation of summary data 2225 that was previously removed (due to another optimization) and subsequently displayed (as a result of a selection of an interactive control link 2291).

Attention is now directed to FIGS. 18-19, which reflect an illustration of rendering a link 1990 for the interactive control that is operable, when selected, for expanding the interactive control and/or causing a display of a new interactive control frame that displays or otherwise provides access to the removed chart elements. For example, the visualizations 1800 and 1900 reflect cumulative test scores for school districts, as reflected by titles 1810 and 1902.

In this example, the optimization to visualization 1800 causes a removal of a legend 1820 and a sub-title 1830. Many of the gridlines 1880 (only some of which are currently referenced) are also removed, along with some or all of the tick mark labels 1860. Other tick mark labels 1840 are represented by abbreviated tick mark labels 1940.

In this embodiment, a selection of the link 1990 (which was created and displayed upon removing and/or modifying chart elements) will cause a display of at least some of the removed chart elements and/or a display of new chart elements. For example, in this embodiment, a selection of link 1990 will cause a display of gridlines 1904 and 1906, which were previously removed, along with a display of tick mark labels 1960, which were also previously removed.

In some embodiments, the graphic element 1970 is also turned into a selectable link which, when selected, causes a display of the newly presented value 52 (which was not previously rendered in the chart), along with one or more of the gridlines 1904 and 1906 or tick mark labels 1960. As illustrated with this example, multiple different links are provided, in some instances, to provide different access points to the removed chart elements and/or other relevant data (some of which may be new data that was not previously displayed within the chart visualization).

FIGS. 20-22 also reflect additional examples for rendering interactive controls that are operable to access removed chart elements and other data corresponding to the chart elements. In FIG. 20, for example, a link 2090 is provided for an interactive control that is expanded to display or otherwise provide access to data object 2092 in response to a selection of the link 2090. In one embodiment, element 2091 is also modified into a selectable link for the interactive control. This generation of the selectable link by modifying element 2091 occurs during and/or subsequent to a removal of the chart elements, such as during a previous optimization of the chart. The removed chart elements (not shown) correspond to the data that is now shown in data object 2092.

FIG. 21 represents a related embodiment in which a selection of element 2191 causes a display of summary data within interactive control interface 2125, wherein the summary data comprises chart elements or related data for the chart elements (not shown) which were previously removed from the chart visualization 2100 during an earlier optimization. In this embodiment, element 2191 is modified into a selectable link that is operable, when selected, to display an expanded interactive control interface that renders chart elements that were removed during the optimization(s) of the chart.

In some embodiments, selection of different links to the interactive control will cause the expanding of different interactive control interfaces and the display of different chart elements that were previously removed and/or other related data. For instance, the selection of link 2091 will cause a display of interactive control interface object 2092, in one embodiment, while a selection of link 2090 will cause a display of summary data within interactive control interface 2125.

It will be appreciated, with regard to the foregoing examples, the links to the interactive controls are presentable at different locations and with different configurations within the chart visualization. For instance, link 1990 is presented in a top right corner of visualization 1900. Link 2090, on the other hand, is presented in a bottom right corner of visualization 2000. Element 2191 was also provided as a link within the graphical elements and body of the chart visualization 2100. Accordingly, the interactive controls are configurable for presentation in different locations (e.g., in corners, along edges, within the chart elements, etc.) and with different sizes, shapes and configurations within the chart visualizations to accommodate different needs and preferences.

Additionally, even though the forgoing embodiments show the interactive control interfaces being displayed within the boundaries of the chart visualizations, it will be appreciated that in other embodiments (not presently shown), the interactive control interfaces are displayed outside of the boundaries of the chart visualizations as newly framed objects or display elements.

Settings that specify what data and or chart elements to display within the interactive control interfaces, as well as where and how the interactive control interfaces are displayed, are accessed and/or otherwise identified by the computing system during the optimization(s) and/or in response to detecting input selecting the link(s). In some embodiments, the interactive control settings also identify which data to remove, if any, responsive to a selection of an interactive control link and/or upon rendering data corresponding to a selected interactive control link, such as described above with regard to FIG. 22. For instance, in FIG. 22, a selection of link 2291 will trigger a display of interactive control interface 2225 and a removal of a legend (not shown in FIG. 22), such as legend 2120 from FIG. 21.

The interactive control settings also specify the different conditions and inputs that are operable to trigger the expanding and collapsing of the interactive controls, as well as the size constraints and other display attributes of the interactive control interfaces (e.g., levels of transparency, contrast, font sizing, coloring, positioning, etc.).

These interactive control settings are stored in the default display attribute data structure or another data structure. The interactive control settings are also user modifiable, as described above with regard to the default display attribute settings, through user interfaces and menus and are applicable to different predetermined conditions (e.g., type of link being selected, type or quantity of chart elements that have been removed, chart size and corresponding available space for displaying the interactive control interfaces, etc.).

During implementation of the disclosed embodiments, the computing system accesses and applies the stored interactive control settings in response to correspondingly appropriate conditions and inputs detected by the computing system.

It will be appreciated from the foregoing that many aspects of the disclosed embodiments are usable to facilitate the optimizations of chart visualization and to provide user controls for enabling a user to selectively access chart elements, including elements that are removed during chart visualization optimizations. While many of the foregoing examples regarding chart optimizations and tagging controls have been described with regard to bar charts, it will be appreciated that the scope of this disclosure relates to optimizations and triggering events for all types of chart visualizations.

Furthermore, although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above, or the order of the acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims. Accordingly, all changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope. 

What is claimed is:
 1. A computing system configured for creating and utilizing an interactive control that is dynamically created in response to one or more chart elements being removed from a chart visualization during optimization used to resize the chart visualization for a smaller display area while still permitting selective access to the removed one or more chart elements, the computing system comprising: one or more processors; and one or more hardware storage device having stored computer-executable instructions which are executable by the one or more processors to cause the computing system to perform the following computer-implemented method: accessing at a device a chart visualization that includes a plurality of different chart elements, at least some of the different chart elements having display attributes that are modifiable during an optimization used to resize the accessed chart visualization for a smaller display area of the device, and wherein at least some of the display attributes are set as default attributes that are stored in and accessible through data structures stored in system memory; in response to an event that requires resizing the accessed chart visualization for the smaller display area, triggering an optimization sequence used to resize the accessed chart visualization for the smaller display area, wherein the optimization sequence comprises: triggering a first optimization used to resize and reduce the accessed chart visualization by a first given percentage relative to the accessed chart visualization's original size; and successively triggering one or more further optimizations in order to further resize and reduce the accessed chart visualization by at least a second given percentage relative to the accessed chart visualization's original size; and wherein chart elements having display attributes that are default attributes are not hidden or modified during the first or any subsequently triggered optimization unless the chart visualization is reduced to a certain threshold size or smaller; identifying one or more chart elements that do not have default attributes and which are to be modified or hidden from the accessed chart visualization responsive to each triggered optimization; for each triggered optimization, reducing the overall size of the accessed chart visualization by the given percentage for the triggered optimization, relative to the accessed chart visualization's original size, by modifying or hiding the one or more chart elements that do not have default attributes from the accessed chart visualization in accordance with the triggered optimization; presenting the reduced accessed chart visualization in an optimized format in which the one or more chart elements that do not have default attributes have been modified or hidden in accordance with the optimization sequence; as part of the optimized format, presenting an interactive control that is associated with at least one modified or hidden chart element; and in response to detected user input at the interactive control, accessing the at least one modified or hidden chart element.
 2. The computing system of claim 1, wherein the interactive control comprises a selectable link which is operable, when selected, to cause a display of the one or more modified or hidden chart elements.
 3. The computing system of claim 2, wherein the method performed comprises displaying the selectable link within the optimized format for the accessed chart visualization.
 4. The computing system of claim 2, wherein one of the displayed chart elements of the optimized format comprises the selectable link.
 5. The computing system of claim 4, wherein the method performed comprises displaying one or more new chart elements in response to a selection of the selectable link.
 6. The computing system of claim 1, wherein the one or more chart elements includes a chart legend.
 7. The computing system of claim 1, wherein the one or more chart elements includes a label.
 8. The computing system of claim 1, wherein the one or more chart elements includes at least one non-textual graphical chart element.
 9. A computer-implemented method for creating and utilizing an interactive control that is dynamically created in response to one or more chart elements being hidden from a chart visualization during optimization used to resize the chart visualization for a smaller display area while still permitting access to the hidden one or more chart elements, the method being implemented by at least one processor and computer-executable instructions that are executable by the at least one processor when performing the method, which comprises: accessing at a device a chart visualization that includes a plurality of different chart elements, at least some of the different chart elements having display attributes that are modifiable during an optimization used to resize the accessed chart visualization for a smaller display area on the device, and wherein at least some of the display attributes are set as default attributes that are stored in and accessible through data structures stored in system memory; in response to an event that requires resizing the accessed chart visualization for the smaller display area, triggering an optimization sequence used to resize the accessed chart visualization for the smaller display area, wherein the optimization sequence comprises: triggering a first optimization used to resize and reduce the accessed chart visualization by a first given percentage relative to the accessed chart visualization's original size; and successively triggering one or more further optimizations in order to further resize and reduce the accessed chart visualization by at least a second given percentage relative to the accessed chart visualization's original size; identifying one or more chart elements to be modified or hidden from the accessed chart visualization responsive to the triggered optimization; and wherein chart elements having display attributes that are default attributes are not hidden or modified during the first or any subsequently triggered optimization unless the chart visualization is reduced to a certain threshold size or smaller; identifying one or more chart elements that do not have default attributes and which are to be modified or hidden from the accessed chart visualization responsive to each triggered optimization; for each triggered optimization, reducing the overall size of the accessed chart visualization by the given percentage for the triggered optimization, relative to the accessed chart visualization's original size, by modifying or hiding the one or more chart elements that do not have default attributes from the accessed chart visualization in accordance with the triggered optimization; presenting the reduced accessed chart visualization in an optimized format in which the one or more chart elements that do not have default attributes have been modified or hidden in accordance with the optimization sequence; as part of the optimized format presenting an interactive control that is associated with at least one modified or hidden chart element; and in response to detected user input at the interactive control, accessing the at least one modified or hidden chart element.
 10. The method of claim 9, wherein the interactive control comprises a selectable link which is operable, when selected, to cause a display of the one or more modified or hidden chart elements.
 11. The method of claim 9, wherein the method performed comprises displaying the selectable link within the optimized format for the accessed chart visualization.
 12. The method of claim 10, wherein one of the displayed chart elements of the optimized format comprises the selectable link.
 13. The method of claim 12, further comprising displaying one or more new chart elements in response to a selection of the selectable link.
 14. The method of claim 9, wherein the one or more chart elements includes a label.
 15. The method of claim 9, wherein the one or more chart elements includes at least one non-textual graphical chart element.
 16. A computing system configured for performing chart visualization optimizations in a progressive manner in response to successively detected triggering events, the computing system comprising: one or more processors; and one or more hardware storage device having stored computer-executable instructions which are executable by the one or more processors to cause the computing system to perform the following computer-implemented method: accessing at a device a chart visualization that includes a plurality of different chart elements, at least some of the different chart elements having display attributes that are modifiable during optimization of the accessed chart visualization, and wherein at least some of the display attributes are set as default attributes that are stored in and accessible through data structures stored in system memory; in response to an event that requires resizing the accessed chart visualization for a smaller display area on the device, triggering an optimization sequence used to resize the accessed chart visualization for the smaller display area, wherein the optimization sequence comprises: triggering a first optimization used to resize and reduce the accessed chart visualization by a first given percentage relative to the accessed chart visualization's original size; successively triggering one or more further optimizations in accordance with the optimization sequence used in order to further resize and reduce the accessed chart visualization by at least a second given percentage relative to the accessed chart visualization's original size; and wherein chart elements having display attributes that are default attributes are not hidden or modified during the first or any subsequently triggered optimization unless the chart visualization is reduced to a certain threshold size or smaller; identifying one or more chart elements that do not have default attributes and which are to be modified or hidden from the accessed chart visualization responsive to each triggered optimization; for each triggered optimization, reducing the overall size of the accessed chart visualization by the given percentage for the triggered optimization, relative to the accessed chart visualization's original size, by modifying or hiding the one or more chart elements that do not have default attributes from the accessed chart visualization in accordance with the triggered optimization; presenting the reduced accessed chart visualization in an optimized format in which one or more chart elements that do not have default attributes have been modified or hidden in accordance with each optimization of the optimization sequence that is performed; as part of the optimized format presenting an interactive control that is associated with at least one modified or hidden chart element; and in response to detected user input at the interactive control, accessing the at least one modified or hidden chart element by generating within the reduced accessed chart visualization that is presented an area that separately displays at least one modified or hidden chart element.
 17. The computing system of claim 16, wherein the defaults attributes comprise a single displayed value for a single corresponding chart element.
 18. The computing system of claim 16, wherein one or more of the optimizations comprise: changing a font of at least one chart element, where the font is not a default attribute; and changing the at least one chart element from a non-compact format into a compact format by hiding at least a part of the at least one chart element prior to changing the font of the at least one chart element.
 19. The computing system of claim 16, wherein one or more of the optimizations comprise: hiding one or more label chart elements from the chart visualization, where the one or more label chart elements do not comprise a default attribute; and hiding one or more non-label chart elements, where the one or more non-label elements do not comprise a default attribute, prior to hiding the one or more label chart elements from the chart visualization.
 20. The computing system of claim 16, wherein one or more of the optimizations comprise: hiding a legend which does not comprise a default attribute; and repositioning the legend within the optimized chart visualization prior to hiding the legend. 